﻿using Sys.Core.Models.Queries;
using Sys.Core.Models.VO;
using MiniFox.Components;
using MiniFox.Infrastructure;

namespace Sys.Core.Providers
{
    [AutoRegister]
    public interface IOnlineProvider
    {
        ResultObject<IEnumerable<OnlineVo>> OnlineQuery(PagedQueryObject<OnlineQuery> request);

        ResultObject<IEnumerable<SigninLogVo>> SignInLogQuery(PagedQueryObject<SignInQuery> request);

        ResultObject<IEnumerable<AuthTokenVo>> AuthTokenQuery(PagedQueryObject<AuthQuery> request);

        ResultObject<IEnumerable<AuthCodeVo>> AuthCodeQuery(PagedQueryObject<AuthQuery> request);

        void RemoveAuthCode(string appId, string ticketId, string code);

        void RemoveAuthToken(string appId, string ticketId);

        void Logoff(params string[] ticketId);
    }
}
